package com.cloudkinto.bo.order.outbound;

import com.cloudkinto.bo.common.BaseQueryBo;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 查询一件代发出库单
 *
 * @author long
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class NormalOrderOutboundQueryBo extends BaseQueryBo {
    private List<Long> whIds;
    @ApiModelProperty(value = "客户id")
    private List<Long> companyIdList;

    @ApiModelProperty("公司标签")
    private String companyTag;

    @ApiModelProperty(value = "波次id")
    private Long waveId;

    @ApiModelProperty(value = "订单品种类型")
    private List<Integer> orderVarietyTypeList;

    @ApiModelProperty(value = "销售平台")
    private List<Integer> salesPlatformList;

    @ApiModelProperty(value = "物流渠道id")
    private List<Long> logisticsChannelIdList;

    @ApiModelProperty(value = "承运商")
    private List<String> carrierList;

    @ApiModelProperty(value = "目的国家")
    private List<String> destinationCountryList;

    @ApiModelProperty(value = "产品分类")
    private List<Long> categoryIdList;

    @ApiModelProperty(value = "收件人")
    private String receiver;

    @ApiModelProperty(value = "收件人邮编")
    private String receiverPostCode;

    @ApiModelProperty(value = "区间类型 1订单总重量 2产品总数量")
    private Integer rangeType;

    @ApiModelProperty(value = "最小数量")
    private Integer mixNum;

    @ApiModelProperty(value = "最大数量")
    private Integer maxNum;

    @ApiModelProperty(value = "状态")
    private Integer status;
    @ApiModelProperty(value = "状态")
    private List<Integer> statusList;

    @ApiModelProperty(value = "sku")
    private List<String> skuList;

    @ApiModelProperty(value = "产品名称")
    private List<String> productNameList;

    @ApiModelProperty(value = "出库单号")
    private List<String> outboundNoList;

    @ApiModelProperty(value = "参考单号")
    private List<String> referenceNumberList;

    @ApiModelProperty(value = "物流跟踪号")
    private List<String> trackingNumberList;

    @ApiModelProperty(value = "平台单号")
    private List<String> platformOrderNoList;

    @ApiModelProperty(value = "波次号")
    private List<String> waveNoList;

    @ApiModelProperty(value = "有无跟踪号")
    private Boolean hasTrackingNumber;

    @ApiModelProperty(value = "面单打印")
    private Boolean printLabel;

    @ApiModelProperty(value = "有无附件")
    private Boolean hasAppendix;

    @ApiModelProperty(value = "订单来源")
    private Integer orderOrigin;

    @ApiModelProperty(value = "时间类型 1创建 2波次 3拣货 4复核 5称重 6出库 7 提交时间 8取消时间")
    private Integer timeType;

    /**
     * 1wms确认的异常件 2oms下单异常、提交后库存异常
     */
    @ApiModelProperty("异常来源 1wms 2oms")
    private Integer exceptionSource;

    @ApiModelProperty(value = "渠道模板")
    private Long trackIdByExport;

    @ApiModelProperty(value = "仓库模板")
    private Long whIdByExport;

    @ApiModelProperty(value = "模板类型 1黑猫 2佐川")
    private int templateType = 1;

    @ApiModelProperty(value = "是否剔除不属于该渠道的订单")
    private Boolean excludeNotInTrackId;

    private boolean apiFlag;
}
